#ifndef CONFIGURATION_H_
#define CONFIGURATION_H_
#include <fstream>
#include <iostream>
#include <cstring>
#include <string>
#include <stdio.h>
#include <stdlib.h>
using namespace std;

class Configuration {

private:
	string treePath;
	string hashPath;
	string bookFilePath;
	string reportsFilesPath;
	int blockSize;
    static bool instanceFlag;
	static Configuration *config;
	Configuration();
    void setBookFilePath(string bookFilePath);
    void setHashPath(string hashPath);
    void setTreePath(string treePath);
    void setBlockSize(int blockSize);
    void setReportsFilesPath(string reportsFilesPath);
    void error();

public:
	virtual ~Configuration();
	static Configuration* getInstance();
    string getBookFilePath() const;
    string getFreeNodesTreePath() const;
    string getHashPath() const;
    string getTreePath() const;
    int getBlockSize() const;
    string getReportsFilesPath() const;
};

#endif /* CONFIGURATION_H_ */
